// 解法2 哈希表：hash map 统计每个字符的频次

function isAnagram(s, t) {
    if(s.length !== t.length){
        return false
    }
    let table = new Array(26).fill(0)

    for(let i=0; i<s.length;i++){
        table[s.codePointAt(i) - 'a'.codePointAt(0)] ++;
    }
    for(let i=0; i<t.length; i++){
        table[t.codePointAt(i) - 'a'.codePointAt(0)] --;
        if(table[t.codePointAt(i) - 'a'.codePointAt(0)]<0){
            return false
        }
    }
    return true
}

console.log(isAnagram('aacc','ccac'))

// 解法2，排序法：对字符进行排序，然后比对字符串是否相等
function isAnagram1(s, t) {
    let sL = s.split('')
    let tL = t.split('')
    sL.sort((a, b) => a > b ? 1 : -1)
    tL.sort((a, b) => a > b ? 1 : -1)
    return sL.join('') === tL.join('')
}

// 解法3； map


function isAnagram3(s, t) {
    if(s.length !== t.length){
        return false;
    }
    let letterMap ={};
    for(let i of s){
        letterMap[i] = (letterMap[i] || 0) +1;
    }
    for(let i of t){
        if(!letterMap[i]){
            return false;
        }
        letterMap[i] -- ;
    }
    return true;
}